Terraform Module
Terraformはディレクトリ単位でmoduleになる
参考
code:tf
module "webserver_cluster" {
source = "../../../modules/services/webserver-cluster"
cluster_name = "webserver-prod"
}
module自体の返り値
外部moduleからmodule.<MODULE_NAME>.<OUTPUT_NAME>で参照できる
相対パスの扱いに注意する
path.module
path.root
path.cwd
moduleぼバージョン管理
共通のモジュールを使うと、stagingのための変更がprodに影響を及ぼしてしまう
2つのリポジトリに分ける
再利用のためのパーツを集めたリポジトリ
stating/prod等を集めたリポジトリ
各環境ではsourceでgithub urlを指定して別のバージョンを参照する
moduleは小さく保とう